home *** CD-ROM | disk | FTP | other *** search
/ Australian Personal Computer 2004 July / APC0407D2.iso / workshop / onlineco / files / ImageMagick-6.0.1-Q16-windows-dll.exe / {app} / include / magick / studio.h < prev    next >
Encoding:
C/C++ Source or Header  |  2004-05-06  |  9.9 KB  |  397 lines

  1. /*
  2.   ImageMagick Application Programming Interface declarations.
  3. */
  4. #ifndef _MAGICK_STUDIO_H
  5. #define _MAGICK_STUDIO_H
  6.  
  7. #if defined(__cplusplus) || defined(c_plusplus)
  8. extern "C" {
  9. #endif
  10.  
  11. #ifndef _POSIX_C_SOURCE
  12. # define _POSIX_C_SOURCE  199506L
  13. #endif
  14. #ifndef _XOPEN_SOURCE
  15. # define _XOPEN_SOURCE  500
  16. #endif
  17. #ifndef _XOPEN_SOURCE_EXTENDED
  18. # define _XOPEN_SOURCE_EXTENDED  1
  19. #endif
  20. #ifndef __EXTENSIONS__
  21. # define __EXTENSIONS__  1
  22. #endif
  23.  
  24. #ifdef __CYGWIN32__
  25. #  ifndef __CYGWIN__
  26. #    define __CYGWIN__ __CYGWIN32__
  27. #  endif
  28. #endif
  29. #if defined(_WIN32) || defined(WIN32)
  30. #  ifndef __WINDOWS__
  31. #    ifdef _WIN32
  32. #      define __WINDOWS__ _WIN32
  33. #    else
  34. #      ifdef WIN32
  35. #        define __WINDOWS__ WIN32
  36. #      endif
  37. #    endif
  38. #  endif
  39. #endif
  40.  
  41. #if !defined(vms) && !defined(macintosh) && !defined(__WINDOWS__)
  42. # define POSIX
  43. #endif
  44.  
  45. #define MAGICK_IMPLEMENTATION  1
  46.  
  47. #if !defined(_MAGICK_CONFIG_H)
  48. # define _MAGICK_CONFIG_H
  49. # if !defined(vms) && !defined(macintosh)
  50. #  include "magick/magick_config.h"
  51. # else
  52. #  include "magick_config.h"
  53. # endif
  54. # if defined(__cplusplus) || defined(c_plusplus)
  55. #  undef inline
  56. # endif
  57. #endif
  58.  
  59. #if defined(MagickMethodPrefix)
  60. # include "magick/methods.h"
  61. #endif
  62.  
  63. #if !defined(const)
  64. #  define STDC
  65. #endif
  66.  
  67. #if defined(__BORLANDC__) && defined(_DLL)
  68. #  pragma message("BCBMagick lib DLL export interface")
  69. #  define _MAGICKDLL_
  70. #  define _MAGICKLIB_
  71. #  define SupportMagickModules
  72. #  undef BuildMagickModules
  73. #endif
  74.  
  75. #if defined(__WINDOWS__)
  76. # if defined(_MT) && defined(_DLL) && !defined(_MAGICKDLL_) && !defined(_LIB)
  77. #  define _MAGICKDLL_
  78. # endif
  79. # if defined(_MAGICKDLL_)
  80. #  if defined(_VISUALC_)
  81. #   pragma warning( disable: 4273 )  /* Disable the dll linkage warnings */
  82. #  endif
  83. #  if !defined(_MAGICKLIB_)
  84. #   define MagickExport  __declspec(dllimport)
  85. #   if defined(_VISUALC_)
  86. #    pragma message( "Magick lib DLL import interface" )
  87. #   endif
  88. #  else
  89. #   define MagickExport  __declspec(dllexport)
  90. #   if defined(_VISUALC_)
  91. #    pragma message( "Magick lib DLL export interface" )
  92. #   endif
  93. #  endif
  94. # else
  95. #  define MagickExport
  96. #  if defined(_VISUALC_)
  97. #   pragma message( "Magick lib static interface" )
  98. #  endif
  99. # endif
  100.  
  101. # if defined(_DLL) && !defined(_LIB)
  102. #  define ModuleExport  __declspec(dllexport)
  103. #  if defined(_VISUALC_)
  104. #   pragma message( "Magick module DLL export interface" )
  105. #  endif
  106. # else
  107. #  define ModuleExport
  108. #  if defined(_VISUALC_)
  109. #   pragma message( "Magick module static interface" )
  110. #  endif
  111.  
  112. # endif
  113. # define MagickGlobal __declspec(thread)
  114. # if defined(_VISUALC_)
  115. #  pragma warning(disable : 4018)
  116. #  pragma warning(disable : 4244)
  117. #  pragma warning(disable : 4142)
  118. #  pragma warning(disable : 4800)
  119. #  pragma warning(disable : 4786)
  120. # endif
  121. #else
  122. # define MagickExport
  123. # define ModuleExport
  124. # define MagickGlobal
  125. #endif
  126.  
  127. #if defined(__cplusplus) || defined(c_plusplus)
  128. # define storage_class  c_class
  129. #else
  130. # define storage_class  class
  131. #endif
  132.  
  133. #define MagickSignature  0xabacadabUL
  134. #define MaxTextExtent  ((size_t) 4096)
  135.  
  136. #include <stdarg.h>
  137. #include <stdio.h>
  138. #if defined(__WINDOWS__) && defined(_DEBUG)
  139. #define _CRTDBG_MAP_ALLOC
  140. #endif
  141. #include <stdlib.h>
  142. #if !defined(__WINDOWS__)
  143. # include <unistd.h>
  144. #else
  145. # include <direct.h>
  146. # if !defined(HAVE_STRERROR)
  147. #  define HAVE_STRERROR
  148. # endif
  149. #endif
  150.  
  151. #if defined(HAVE_INTTYPES_H)
  152. # include <inttypes.h>
  153. #endif
  154.  
  155. #if defined(_FILE_OFFSET_BITS)
  156. # if (_FILE_OFFSET_BITS == 64)
  157. #  define fseek  fseeko
  158. #  define ftell  ftello
  159. # endif
  160. #endif
  161.  
  162. #include <string.h>
  163. #include <ctype.h>
  164. #include <locale.h>
  165. #include <errno.h>
  166. #include <fcntl.h>
  167. #include <math.h>
  168. #include <time.h>
  169. #include <limits.h>
  170. #include <signal.h>
  171. #include <assert.h>
  172.  
  173. #if defined(HAVE_STRLCPY) && !defined(HAVE_STRLCPY_PROTOTYPE)
  174. extern size_t
  175.   strlcpy(char *,const char *,size_t);
  176. #endif
  177.  
  178. #if defined(HAVE_VSNPRINTF) && !defined(HAVE_VSNPRINTF_PROTOTYPE)
  179. extern int
  180.   vsnprintf(char *,size_t,const char *,va_list);
  181. #endif
  182.  
  183. #if defined(__WINDOWS__) || defined(POSIX)
  184. # include <sys/types.h>
  185. # include <sys/stat.h>
  186. # if defined(HAVE_FTIME)
  187. # include <sys/timeb.h>
  188. # endif
  189. # if defined(POSIX)
  190. #  if defined(HAVE_SYS_NDIR_H) || defined(HAVE_SYS_DIR_H) || defined(HAVE_NDIR_H)
  191. #   define dirent direct
  192. #   define NAMLEN(dirent) (dirent)->d_namlen
  193. #   if defined(HAVE_SYS_NDIR_H)
  194. #    include <sys/ndir.h>
  195. #   endif
  196. #   if defined(HAVE_SYS_DIR_H)
  197. #    include <sys/dir.h>
  198. #   endif
  199. #   if defined(HAVE_NDIR_H)
  200. #    include <ndir.h>
  201. #   endif
  202. #  else
  203. #   include <dirent.h>
  204. #   define NAMLEN(dirent) strlen((dirent)->d_name)
  205. #  endif
  206. #  include <pwd.h>
  207. # endif
  208. # if !defined(S_ISDIR)
  209. #  define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
  210. # endif
  211. # if !defined(S_ISREG)
  212. #  define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG)
  213. # endif
  214. # include "magick/ImageMagick.h"
  215. # if !defined(__WINDOWS__)
  216. #  include <sys/time.h>
  217. # if defined(HAVE_SYS_TIMES_H)
  218. #  include <sys/times.h>
  219. # endif
  220. # if defined(HAVE_SYS_RESOURCE_H)
  221. #  include <sys/resource.h>
  222. # endif
  223. #endif
  224. #else
  225. # include <types.h>
  226. # include <stat.h>
  227. # if defined(macintosh)
  228. #  if !defined(DISABLE_SIOUX)
  229. #   include <SIOUX.h>
  230. #   include <console.h>
  231. #  endif
  232. #  include <unix.h>
  233. # endif
  234. # include "magick/ImageMagick.h"
  235. #endif
  236.  
  237. #if defined(S_IRUSR) && defined(S_IWUSR)
  238. # define S_MODE (S_IRUSR | S_IWUSR)
  239. #elif defined (__WINDOWS__)
  240. # define S_MODE (_S_IREAD | _S_IWRITE)
  241. #else
  242. # define S_MODE  0600
  243. #endif
  244.  
  245. #if defined(__WINDOWS__)
  246. # include "magick/nt_base.h"
  247. #endif
  248. #if defined(macintosh)
  249. # include "magick/mac.h"
  250. #endif
  251. #if defined(vms)
  252. # include "magick/vms.h"
  253. #endif
  254.  
  255. #undef index
  256. #undef pipe
  257.  
  258. /*
  259.   Review these platform specific definitions.
  260. */
  261. #if defined(POSIX)
  262. # define DirectorySeparator  "/"
  263. # define DirectoryListSeparator  ':'
  264. # define EditorOptions  " -title \"Edit Image Comment\" -e vi"
  265. # define Exit  exit
  266. # define IsBasenameSeparator(c)  ((c) == '/')
  267. # define PreferencesDefaults  "~/."
  268. # define ProcessPendingEvents(text)
  269. # define ReadCommandlLine(argc,argv)
  270. # define SetNotifyHandlers
  271. #else
  272. # if defined(vms)
  273. #  define ApplicationDefaults  "decw$system_defaults:"
  274. #  define DirectorySeparator  ""
  275. #  define DirectoryListSeparator  ';'
  276. #  define EditorOptions  ""
  277. #  define Exit  exit
  278. #  define IsBasenameSeparator(c)  (((c) == ']') || ((c) == ':') || ((c) == '/'))
  279. #  define MagickLibPath  "sys$login:"
  280. #  define MagickCoderModulesPath  "sys$login:"
  281. #  define MagickFilterModulesPath  "sys$login:"
  282. #  define MagickSharePath  "sys$login:"
  283. #  define PreferencesDefaults  "decw$user_defaults:"
  284. #  define ProcessPendingEvents(text)
  285. #  define ReadCommandlLine(argc,argv)
  286. #  define SetNotifyHandlers
  287. # endif
  288. # if defined(macintosh)
  289. #  define ApplicationDefaults  "/usr/lib/X11/app-defaults/"
  290. #  define DirectorySeparator  ":"
  291. #  define DirectoryListSeparator  ';'
  292. #  define EditorOptions ""
  293. #  define IsBasenameSeparator(c)  ((c) == ':')
  294. #  define MagickLibPath  ""
  295. #  define MagickCoderModulesPath  ""
  296. #  define MagickFilterModulesPath  ""
  297. #  define MagickSharePath  ""
  298. #  define PreferencesDefaults  "~/."
  299. #  if defined(DISABLE_SIOUX)
  300. #   define ReadCommandlLine(argc,argv)
  301. #   define SetNotifyHandlers \
  302.      SetFatalErrorHandler(MacFatalErrorHandler); \
  303.      SetErrorHandler(MACErrorHandler); \
  304.      SetWarningHandler(MACWarningHandler)
  305. #  else
  306. #   define ReadCommandlLine(argc,argv) argc=ccommand(argv); puts(MagickVersion);
  307. #   define SetNotifyHandlers \
  308.      SetErrorHandler(MACErrorHandler); \
  309.      SetWarningHandler(MACWarningHandler)
  310. #  endif
  311. # endif
  312. # if defined(__WINDOWS__)
  313. #  define DirectorySeparator  "\\"
  314. #  define DirectoryListSeparator  ';'
  315. #  define EditorOptions ""
  316. #  define IsBasenameSeparator(c)  (((c) == '/') || ((c) == '\\'))
  317. #  define ProcessPendingEvents(text)
  318. #  if !defined(PreferencesDefaults)
  319. #    define PreferencesDefaults  "~\\."
  320. #  endif
  321. #  define ReadCommandlLine(argc,argv)
  322. #  define SetNotifyHandlers \
  323.     SetErrorHandler(NTErrorHandler); \
  324.     SetWarningHandler(NTWarningHandler)
  325. #  undef sleep
  326. #  define sleep(seconds)  Sleep(seconds*1000)
  327. #  if !defined(HAVE_TIFFCONF_H)
  328. #    define HAVE_TIFFCONF_H
  329. #  endif
  330. # endif
  331.  
  332. #endif
  333.  
  334. /*
  335.   Define declarations.
  336. */
  337. #define AbsoluteValue(x)  ((x) < 0 ? -(x) : (x))
  338. #define False  0
  339. #define DegreesToRadians(x) (MagickPI*(x)/180.0)
  340. #define IsGray(color)  \
  341.   (((color).red == (color).green) && ((color).green == (color).blue))
  342. #define MagickPI 3.14159265358979323846264338327950288419716939937510
  343. #define MagickSQ2PI 2.50662827463100024161235523934010416269302368164062
  344. #define Max(x,y)  (((x) > (y)) ? (x) : (y))
  345. #define Min(x,y)  (((x) < (y)) ? (x) : (y))
  346. #define QuantumTick(i,span) ((((i) & 0xff) == 0) || \
  347.   ((MagickOffsetType) i == ((MagickOffsetType) (span)-1)))
  348. #define RadiansToDegrees(x) (180.0*(x)/MagickPI)
  349. #define Swap(x,y) ((x)^=(y), (y)^=(x), (x)^=(y))
  350. #define True  1
  351.  
  352. /*
  353.   3D effects.
  354. */
  355. #define AccentuateModulate  ScaleCharToQuantum(80)
  356. #define HighlightModulate  ScaleCharToQuantum(125)
  357. #define ShadowModulate  ScaleCharToQuantum(135)
  358. #define DepthModulate  ScaleCharToQuantum(185)
  359. #define TroughModulate  ScaleCharToQuantum(110)
  360.  
  361. /*
  362.   Define system symbols if not already defined.
  363. */
  364. #if !defined(STDIN_FILENO)
  365. #define STDIN_FILENO  0x00
  366. #endif
  367.  
  368. #if !defined(O_BINARY)
  369. #define O_BINARY  0x00
  370. #endif
  371.  
  372. #if defined(HasLTDL) || (defined(__WINDOWS__) && defined(_DLL))
  373. #  define SupportMagickModules
  374. #endif
  375.  
  376. #if defined(_MAGICKMOD_)
  377. # undef BuildMagickModules
  378. # define BuildMagickModules
  379. #endif
  380.  
  381. /*
  382.   I/O defines.
  383. */
  384. #if defined(__WINDOWS__) && !defined(Windows95) && !defined(__BORLANDC__)
  385. #define MagickSeek(file,offset,whence)  _lseeki64(file,offset,whence)
  386. #define MagickTell(file)  _telli64(file)
  387. #else
  388. #define MagickSeek(file,offset,whence)  lseek(file,offset,whence)
  389. #define MagickTell(file) tell(file)
  390. #endif
  391.  
  392. #if defined(__cplusplus) || defined(c_plusplus)
  393. }
  394. #endif
  395.  
  396. #endif
  397.